using System;

namespace csammisrun.OscarLib
{
	/// <summary>
	/// Describes settable ICQ flags
	/// </summary>
	public enum ICQFlags
	{
		/// <summary>
		/// No special flags are set
		/// </summary>
		Normal = 0x0000,
		/// <summary>
		/// Client is Web Aware
		/// </summary>
		WebAware = 0x0001,
		/// <summary>
		/// Server can reveal client's IP address
		/// </summary>
		ShowIP = 0x0002,
		/// <summary>
		/// Today is the user's birthday
		/// </summary>
		Birthday = 0x0008,
		/// <summary>
		/// User has an ICQ homepage
		/// </summary>
		ActiveWebfront = 0x0020,
		/// <summary>
		/// Direct Connect is disabled
		/// </summary>
		DCDisabled = 0x0010,
		/// <summary>
		/// Direct Connect requires authorization
		/// </summary>
		DCAuthorizationOnly = 0x1000,
		/// <summary>
		/// Direct Connect with users on this client's contact list only
		/// </summary>
		DCContactsOnly = 0x2000
	}

	/// <summary>
	/// Describes the client's online state
	/// </summary>
	public enum ICQStatus
	{
		/// <summary>
		/// Client is online
		/// </summary>
		Online = 0x0000,
		/// <summary>
		/// Client is away
		/// </summary>
		Away = 0x0001,
		/// <summary>
		/// Client has set the "Do Not Disturb" flag
		/// </summary>
		DoNotDisturb = 0x0002,
		/// <summary>
		/// Client is not available
		/// </summary>
		NotAvailable = 0x0004,
		/// <summary>
		/// Client is occupied
		/// </summary>
		Occupied = 0x0010,
		/// <summary>
		/// Client is free for chat
		/// </summary>
		FreeForChat = 0x0020,
		/// <summary>
		/// Client is invisible
		/// </summary>
		Invisible = 0x0100
	}

  public class ICQInfo
  {
    public string Screenname = null;
    // General information
    public string Nickname = null;
    public string Firstname = null;
    public string Lastname = null;
    public string Email = null;
    public string HomeCity = null;
    public string HomeState = null;
    public string HomePhone = null;
    public string HomeFax = null;
    public string HomeAddress = null;
    public string MobilePhone = null;
    public string HomeZip = null;
    public ushort HomeCountry = 0x0000;

    // Personal information (home address isn't personal?)
    public byte Age = 0x00;
    public byte Gender = 0x00;
    public string PersonalURL = null;
    public ushort BirthYear = 0x0000;
    public byte BirthMonth = 0x00;
    public byte BirthDay = 0x00;
    public byte Language1 = 0x00;
    public byte Language2 = 0x00;
    public byte Language3 = 0x00;

    // Work information
    public string WorkCity = null;
    public string WorkState = null;
    public string WorkPhone = null;
    public string WorkFax = null;
    public string WorkAddress = null;
    public string WorkZip = null;
    public ushort WorkCountry = 0x0000;
    public string WorkCompany = null;
    public string WorkDivision = null;
    public string WorkPosition = null;
    public string WorkWebsite = null;

    // Additional information
    public string Information = null;

    // Email addresses
    public string[] EmailAddresses = null;
  }
}
